package com.ruoyi.module.dto;

import lombok.Getter;
import lombok.Setter;

/**
 * ClassName:WebResponseDTOTO <br/>
 * Function: 通用响应类   <br/>
 * Date:     2015年4月13日 下午4:11:31 <br/>
 */
@Setter
@Getter
public class WebResponseDTO<T> {

	/**
	 * 0:成功，其他失败
	 */
	private String code;

	/**
	 * 描述
	 */
	private String msg;

	/**
	 * 数据
	 */
	private T data;

	/**
	 * 成功结果 (code="0",msg="",data=data)
	 * @param data
	 * @return
	 */
	public static <R> WebResponseDTO<R> success(R data){
		WebResponseDTO<R> result = new WebResponseDTO<>();
		result.setCode("0");
		result.setMsg("");
		result.setData(data);
		return result;
	}
	
	/**
	 * 失败结果
	 * @param code
	 * @param msg
	 * @param data
	 * @return
	 */
	public static <R> WebResponseDTO<R> error(String code,String msg,R data){
		WebResponseDTO<R> result = new WebResponseDTO<>();
		result.setCode(code);
		result.setMsg(msg);
		result.setData(data);
		return result;
	}
	
	/**
	 * 失败结果
	 * @param code
	 * @param msg
	 * @param data
	 * @return
	 */
	public static <R> WebResponseDTO<R> error(String code,String msg){
		WebResponseDTO<R> result = new WebResponseDTO<R>();
		result.setCode(code);
		result.setMsg(msg);
		result.setData(null);
		return result;
	}
	
	/**
	 * 是否成功！
	 * @return
	 */
	public boolean isSuccess(){
		return "0".equals(this.code);
	}
}

